/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ecom.beans.customer;

import java.util.List;
import javax.ejb.Remote;


import ecom.beans.address.*;
import ecom.beans.account.*;

/**
 *
 * @author Tian
 */
@Remote
public interface CustomerEntityFacadeRemote {

    public CustomerEntity registerCustomer(
            String password,
            String email,
            String firstname, 
            String lastname,
            String tel,
            AddressEntity address,
            AccountEntity account
    );

    
    
     public CustomerEntity registerCustomer(
            String password,
            String email,
            String firstname, 
            String lastname,
            String tel,
            int addressType,
            int streetNum,
            String streetName,
            int buildingNum,
            int floorNum,
            int apartmentNum,
            String zipcode,
            String city
    );
    
    public boolean findCustomerEmail(String email);
    
    public boolean findCustomerPassword(String password);
   
    public CustomerEntity loginCustomer(String email, String password);
    
    public List<CustomerEntity> removeCustomer(String email, String password);
    
    public List<CustomerEntity> removeCustomerById(Long id);

    public List<CustomerEntity> getAllCustomers();
    
    public List<CustomerEntity> removeAllCustomers();
 
    public void updateCustomer(CustomerEntity customer);

	public CustomerEntity findCustomerById(Long id);
	/**
	 *@author Houssem Z. 
	 */
	public void persistCustomer(CustomerEntity customer);

}
